package com.zx.map.service;

import com.zx.map.dao.model.CustAcctLog;
import com.zx.map.service.domain.CustAcctLogDownloadDomain;
import com.zx.map.service.model.AgentInfoModel;
import com.zx.map.service.model.CustAcctLogModel;
import com.zx.mobile.domain.CustAcctLogQueryDomain;
import com.zx.mobile.domain.CustAcctLogSummary;
import org.springframework.dao.DataAccessException;

import java.util.List;
import java.util.Map;

/**
 * Created by IntelliJ IDEA. User: Administrator Date: 14-3-1 Time: 上午11:06 To
 * change this template use File | Settings | File Templates.
 */
public interface CustAcctLogService {

    /**
     * 根据Model查找列表
     *
     * @param model
     * @return
     * @throws org.springframework.dao.DataAccessException
     */
    public List<CustAcctLog> getListByModel(CustAcctLogModel model) throws DataAccessException;

    /**
     * 取现订单查询条件获取交易信息
     *
     * @param custAcctLogQueryDomain
     * @param curAgentInfoModel
     * @return
     * @throws org.springframework.dao.DataAccessException
     */
    public List<CustAcctLog> getListByDomain(CustAcctLogQueryDomain custAcctLogQueryDomain, AgentInfoModel curAgentInfoModel) throws DataAccessException;

    /**
     * 新增并返回主键
     *
     * @param model
     * @return
     * @throws org.springframework.dao.DataAccessException
     */
    public Integer add(CustAcctLogModel model) throws DataAccessException;

    /**
     * 更新并返回主键
     *
     * @param model
     * @throws org.springframework.dao.DataAccessException
     */
    public Integer update(CustAcctLogModel model) throws DataAccessException;

    /**
     * 删除
     *
     * @return
     * @throws org.springframework.dao.DataAccessException
     */
    public void delete(CustAcctLogModel model) throws DataAccessException;

    public Map getPageByDomain(CustAcctLogQueryDomain custAcctLogQueryDomain, AgentInfoModel curAgentInfoModel)
            throws DataAccessException;

    /**
     * 获取总记录数
     *
     * @return
     * @throws DataAccessException
     */
    public int getPageSizeByDomain(CustAcctLogQueryDomain CustAcctLogQueryDomain, AgentInfoModel curAgentInfoModel);

    /**
     * 查询所有交易汇总
     * @param curAgentInfoModel
     * @param curAgentInfoModel1
     * @return
     */
    List<CustAcctLogSummary> queryAcctLogSummaryList(CustAcctLogQueryDomain curAgentInfoModel, AgentInfoModel curAgentInfoModel1);

    List<CustAcctLogDownloadDomain> queryAcctLogReportList(CustAcctLogQueryDomain custAccLogQueryDomain, AgentInfoModel curAgentInfoModel);

    Map queryAcctLogReportPageByDomain(CustAcctLogQueryDomain custAccLogQueryDomain, AgentInfoModel curAgentInfoModel);
}
